import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QWidget,QHBoxLayout,QPushButton
 
class QuitApplication(QMainWindow):
    def __init__(self):
        super(QuitApplication, self).__init__()
        self.resize(400,300)
        self.setWindowTitle('退出应用程序')
 
        #添加Button
        self.button1=QPushButton('退出应用程序')
        #将信号与槽关联
        self.button1.clicked.connect(self.onClick_Button)#注意括号里的参数不带括号
 
        # 创建水平布局
        layout=QHBoxLayout()
        #将button1添加到水平布局
        layout.addWidget(self.button1)
 
        #QWidget上存放所有组件
        '''
        基础窗口控件QWiget类是所有用户界面对象的基类，所有的窗口和空间都是直接或者间接继承自QWiget类。QWidget继承自 QObject 和 PaintDevice 。
        '''
        mainFrame=QWidget()
        #将水平布局放到主框架上
        mainFrame.setLayout(layout)
        #将主框架放到主窗口上
        self.setCentralWidget(mainFrame)
 
 
    #按钮单击事件（自定义的槽）
    def onClick_Button(self):
        # 接收按钮信号
        sender=self.sender()
        #sender.text()输出按钮的文本
        print(sender.text()+'按钮被按下')
        app=QApplication.instance()#返回APP实例
        #退出应用程序
        app.quit()
 
if __name__=='__main__':
    app=QApplication(sys.argv)
    main=QuitApplication()
    main.show()
    sys.exit(app.exec_())
